# 导包
from api.add_cart import add_cartAPI
from api.litemall_login import LiteLogin


# 创建测试类
class Test_add_cart:
    TOKEN = None

    # 前置操作
    def setup_method(self):
        # 加购接口实例化对象
        self.add_api = add_cartAPI()
        # 登录接口实例化对象
        self.login = LiteLogin()
        # 接口实例化对象调用登录方法
        resp_login = self.login.login(test_data={"username": "user123",
                                                 "password": "user123"})
        Test_add_cart.TOKEN = resp_login.json().get("data")["token"]

    # 后置操作
    def teardown_method(self):
        pass

    # 编写测试用例
    # 已登录，加购成功
    def test01_add_cart_success(self):
        # 加购
        cart_test_data = {"goodsId": 1181000, "number": 1, "productId": 2}
        resp_cart = self.add_api.add_cart(token=Test_add_cart.TOKEN,
                                          test_data=cart_test_data)
        assert "成功" in resp_cart.text
        print(Test_add_cart.TOKEN)

    # 已登录，加购失败（goodID为空）
    def test02_add_goodsID_is_null(self):
        cart_test_data = {"goodsId": "", "number": 1, "productId": 2}
        resp_cart = self.add_api.add_cart(token=Test_add_cart.TOKEN,
                                          test_data=cart_test_data)
        assert 401 == resp_cart.json().get("errno")

    # 已登录，加购失败（numbers为空）
    def test03_add_numbers_is_null(self):
        cart_test_data = {"goodsId": 1181000, "number": "", "productId": 2}
        resp_cart = self.add_api.add_cart(token=Test_add_cart.TOKEN,
                                          test_data=cart_test_data)
        assert "系统内部错误" in resp_cart.text
    # 未登录
